<?php

namespace app\common\library;
use Throwable;
use Bluerhinos\phpMQTT;
/**
 * mqtt类
 */
class Mqtt
{
	//发送串口协议
    public static function sendCommand($uuid,$type,$data, $aaid = '')
    {   
        if($aaid && strlen($uuid) <= 10) {
            return self::send2($aaid,$data);
        }
        
        return self::send($uuid,$data);
    }

    /**

     *

     * 向设备发送消息

     */

    public static function send($uuid,$msg){

        $mqtt=self::connect();
        $topic = "wuwo_weight/cmd/{$uuid}";

        // qos ＝ 0：仅发一次，不管是否能收到

        // qos ＝ 1：没返回一直发，可能有重复接收

        // qos ＝ 2：保证必须收到，并且不重复
  
        $res=$mqtt->publish($topic, $msg, 2);
        $mqtt->close();
    }

    public static function send2($aaid,$msg){
        $header_string = "WWHB-HSX";
        
        $mqtt=self::connect();
        $topic = "{$header_string}/F/{$aaid}";

        // qos ＝ 0：仅发一次，不管是否能收到

        // qos ＝ 1：没返回一直发，可能有重复接收

        // qos ＝ 2：保证必须收到，并且不重复

        $res=$mqtt->publish($topic, $msg, 2);

        $mqtt->close();
    }

    /**

     * 链接

     */

    public static function connect(){
        $server    = '47.105.117.6';     // 服务器IP
        $port      = 1883;            // 服务器端口
        $username  = 'wuwoiot';              // 用户名
        $password  = '123+123';              // 密码
        $client_id = uniqid();
        $mqtt = new phpMQTT($server, $port, $client_id);
        $mqtt->connect(true, NULL, $username, $password);
        return $mqtt;
    }
}